package model.kwalificatiebeheer;

import java.util.ArrayList;
import java.util.Observable;

public class KwalificatieDossiers extends Observable{
		/**
		 * Variables
		 */
		private static final KwalificatieDossiers kds = new KwalificatieDossiers();
		private ArrayList<KwalificatieDossier> kwalificatieDossiers = new ArrayList<KwalificatieDossier>();
		
		/**
		 * Constructors
		 */
		private KwalificatieDossiers() {}
		
		public static KwalificatieDossiers getInstance(){
			return kds;
		}
		
		/**
		 * Getters and Setters
		 */
		public ArrayList<KwalificatieDossier> getKwalificatieDossiers() {
			return kwalificatieDossiers;
		}

		public void setKwalificatieDossiers(ArrayList<KwalificatieDossier> kwalificatieDossiers) {
			this.kwalificatieDossiers = kwalificatieDossiers;
		}
		
		public void addKwalificatieDossier(KwalificatieDossier kd){
			kwalificatieDossiers.add(kd);
		}
		
		/**
		 * @name:	 	getKwalificatieDossier
		 * @param:		KwalificatieDossier kd		
		 * @description:Returns KwalificatieDossier from list if match, else 
		 * 				return received KwalificatieDossier.
		 * @return:		KwalificatieDossier
		 */
		public KwalificatieDossier getKwalificatieDossier(KwalificatieDossier kd){
			for(KwalificatieDossier tempKd: kwalificatieDossiers){
				if(kd.equals(tempKd)){
					return tempKd;
				}
			}
			return kd;
		}
		/**
		 * @name:	 	deleteKwalificatieDossier
		 * @param:		KwalificatieDossier kd		
		 * @description:deletes kwalificatie dossier
		 * @return:		
		 */
		public void deleteKwalificatieDossier(KwalificatieDossier kd){
			kwalificatieDossiers.remove(kd);			
			setChanged();
			notifyObservers();
		}
}
